Typically, one-time programmable (OTP) and other reprogrammable devices are used for development or prototyping and only used production in lower volume and higher value products. OTP devices can be uniquely programmed with general information, such as serial numbers. However, programming OTP devices with manufacturing data or individual product specific data is not feasible using conventional approaches. In high volume manufacturing, OTP devices are programmed by the vendor, therefore adding product specific data (i.e., data that depends on the final device configuration or characteristics) is generally not feasible.
Typically, microcontrollers in mass production low-cost consumer and computer products are “mask programmed” (i.e., the microcontroller firmware is hard-wired within the microcontroller). Mask programmed devices have the same disadvantages as OTP devices. In particular, mask programmed devices implement hard coded firmware. Since firmware is typically implemented as metal or diffusion layers of the IC, firmware “bug fixes” require a change to the IC. Design of masked programmed devices has a long time to market (i.e., first samples typically have a 6–8 week lead time because of the need for the IC vendor to first fabricate new partial mask sets, and then fabricate the devices). Design of masked programmed devices also have long lead times (i.e., the IC vendor needs to custom manufacture specific ICs for each customer design). Furthermore, masked devices do not allow customization of each masked programmed IC with, for example, a serial number or configuration data.
Dedicated in-system reprogrammability (ISR) pins add to a total pin-count (ISR™ is a trademark of Cypress Semiconductor Corporation, San Jose, Calif., referring to an in-system reprogrammable complex programmable logic device). Since USB microcontrollers have a limited number of pins (e.g., 16 or less), dedicated ISR pins add to package size and cost. Additionally, ISR is not possible once the circuit board has been placed in the final enclosure unless a special programming connection is exposed to the customer.
It would be desirable to provide a method and/or architecture for implementing computer peripherals that allows reprogrammability without dedicating pins to such reprogrammability.